/**
 * 请求模块
 */
import axios from 'axios'
import store from '@/store'
import JSONBig from 'json-bigint'

const request = axios.create({
  // 接口的基准路径
  baseURL: 'http://toutiao-app.itheima.net',

  // 自定义后端发回的原始数据
  transformResponse: [function (data) {
    try {
      return JSONBig.parse(data)
    } catch (err) {
      return data
    }
  }]

})

// 请求拦截器
request.interceptors.request.use((config) => {
  // 请求发起时会经过这里
  // config 为本次请求的配置对象
  // console.log(123)
  const {
    user
  } = store.state
  // console.log(user)
  if (user && user.token) {
    config.headers.Authorization = `Bearer ${user.token}`
  }
  // console.log(123)
  return config
}, (error) => {
  // 请求出错了（此时请求还没有发出去） 会进入这里
  // console.log(error)
  return Promise.reject(error)
})
// console.log(123)
// 响应拦截器
request.interceptors.response.use(response => {
  // console.log(123)
  // console.log(response)
  // if (response.status === 401) {
  //   // token已经过期了
  //   // 使用refresh_token 刷新获取一个最新的token
  //   const newAxios = axios.create({
  //     // 接口的基准路径
  //     baseURL: 'http://toutiao-app.itheima.net'
  //   })
  //   const {
  //     user
  //   } = store.state
  //   // http://toutiao-app.itheima.net/v1_0/authorizations
  //   // console.log(123)
  //   const {
  //     data
  //   } = newAxios({
  //     method: 'PUT',
  //     url: '/v1_0/authorizations',
  //     headers: {
  //       Authorization: 'Bearer ' + user.refresh_token
  //     }
  //   })
  //   console.log(data)
  //   // data 结果中会包含新的token 然后把新的token保存到Vuex中
  // }
  return response
})

export default request
